Recursion হল একটি প্রোগ্রামিং কৌশল যেখানে একটি ফাংশন বা সাবরুটিন নিজেকে পুনরায় কল করে নির্দিষ্ট শর্তে পৌঁছানো পর্যন্ত। যদিও COBOL একটি পদ্ধতিগত ভাষা এবং সাধারণত পুনরাবৃত্তি (iteration) ব্যবহার করে থাকে, তবে recursion কিছু বিশেষ ক্ষেত্রে ব্যবহার করা যায়। COBOL এ recursion ব্যবহার করার জন্য বিশেষ কিছু কৌশল রয়েছে, যেগুলি মূলত PERFORM এবং CALL স্টেটমেন্টের মাধ্যমে প্রয়োগ করা হয়।
COBOL ভাষায় recursion ব্যবহারের জন্য কোনও সরাসরি ভাষাগত সমর্থন নেই, তবে নির্দিষ্ট লজিকের মাধ্যমে এটি অর্জন করা সম্ভব। সাধারণত PERFORM স্টেটমেন্টের মাধ্যমে নিজেকে পুনরায় কল করা হয়।
একটি সাধারণ উদাহরণ দেয়া হলো যেখানে ফ্যাক্টরিয়াল (Factorial) গণনা করতে recursion ব্যবহার করা হয়েছে।
ফ্যাক্টরিয়াল গণনা করার জন্য Recursion ব্যবহার করা হয়েছে, যেখানে একটি সংখ্যা (N) এর জন্য N! = N * (N-1) * (N-2) * ... * 1
।
IDENTIFICATION DIVISION.
PROGRAM-ID. FactorialRecursion.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 NUM PIC 9(3) VALUE 5.
01 RESULT PIC 9(18) VALUE 1.
PROCEDURE DIVISION.
CALL 'Factorial' USING NUM RESULT.
DISPLAY 'Factorial of ' NUM ' is ' RESULT.
STOP RUN.
FACTORIAL SECTION.
PROCEDURE DIVISION.
FACTORIAL.
IF NUM = 1
EXIT
END-IF
MULTIPLY NUM BY RESULT GIVING RESULT.
SUBTRACT 1 FROM NUM GIVING NUM.
CALL 'Factorial' USING NUM RESULT.
EXIT.
ব্যাখ্যা:
NUM
এবং RESULT
নামক দুইটি ডেটা আইটেম ডিফাইন করা হয়েছে।Factorial
নামে একটি সাবরুটিন কল করা হয়েছে। এখানে ফ্যাক্টরিয়াল গণনা করতে NUM এবং RESULT প্যারামিটার হিসেবে পাঠানো হচ্ছে।FACTORIAL
সাবরুটিন তৈরি করা হয়েছে, যা নিজেকে পুনরায় কল করে কাজটি সম্পন্ন করে।COBOL-এর Recursion বেশ সীমিত এবং এটি কিছু সমস্যা সৃষ্টি করতে পারে:
COBOL এ Recursion সাধারণত PERFORM স্টেটমেন্টের মাধ্যমে iteration এর মতো কাজ করতে পারে, এবং এটি প্রোগ্রামের কার্যকারিতা ও স্ট্যাক ব্যবহারের দিক থেকে আরও নিরাপদ। অনেক সময় recursion এর পরিবর্তে PERFORM UNTIL বা PERFORM VARYING ব্যবহার করে পুনরাবৃত্তি করা হয়।
IDENTIFICATION DIVISION.
PROGRAM-ID. FactorialIteration.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 NUM PIC 9(3) VALUE 5.
01 RESULT PIC 9(18) VALUE 1.
01 I PIC 9(3) VALUE 1.
PROCEDURE DIVISION.
PERFORM VARYING I FROM 1 BY 1 UNTIL I > NUM
MULTIPLY RESULT BY I GIVING RESULT
END-PERFORM.
DISPLAY 'Factorial of ' NUM ' is ' RESULT.
STOP RUN.
ব্যাখ্যা:
COBOL ভাষায় Recursion সাধারণত কিছু নির্দিষ্ট পরিস্থিতিতে এবং PERFORM স্টেটমেন্টের মাধ্যমে প্রয়োগ করা যেতে পারে, তবে এটি খুব বেশি ব্যবহৃত হয় না। COBOL প্রোগ্রামিংয়ে সাধারণত iteration বা looping কৌশলগুলো বেশি কার্যকরী এবং নিরাপদ। Recursion ব্যবহারের ক্ষেত্রে সতর্ক থাকা উচিত, কারণ এটি স্ট্যাক ব্যবহারের সমস্যা এবং পারফরম্যান্সে নেতিবাচক প্রভাব ফেলতে পারে।
common.read_more